class HeroPlane(pygame.sprite.Sprite):
    # 存放玩家飞机所有子弹的组
    bullets = pygame.sprite.Group()

    def __init__(self, screen):
        # 这个精灵的初始化方法 必须调用
        pygame.sprite.Sprite.__init__(self)

        # 载入玩家飞机图片
        self.player = pygame.image.load("hero1.png")

        # 根据图片imgae获取矩形对象
        self.rect = self.player.get_rect()
        self.rect.topleft = [Manager.bg_size[0] / 2 - 46 / 2, 600]

        # 飞机速度
        self.speed = 8

        # 记录当前的窗口对象
        self.screen = screen

        # 装子弹的组
        self.bullets = pygame.sprite.Group()

    def key_control(self):
        key_pressed = pygame.key.get_pressed()

        if key_pressed[K_w]:
            self.rect.top -= self.speed
        if key_pressed[K_s]:
            self.rect.bottom += self.speed
        if key_pressed[K_a]:
            self.rect.left -= self.speed
        if key_pressed[K_d]:
            self.rect.right += self.speed
        if key_pressed[K_SPACE]:
            # 按下空格发射子弹
            bullet = Bullet(self.screen, self.rect.left, self.rect.top)
            # 把子弹装进组
            self.bullets.add(bullet)
            # 存放所有飞机子弹的组
            HeroPlane.bullets.add(bullet)

    def display(self):
        # 将玩家飞机显示到窗口中
        self.screen.blit(self.player, self.rect)

        # 更新子弹坐标
        self.bullets.update()

        # 把所有子弹全部添加到屏幕
        self.bullets.draw(self.screen)

    def update(self):
        self.key_control()
        self.display()

    @classmethod
    def clear_bullets(cls):
        # 清空子弹
        cls.bullets.empty()